/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.fh.itsbankomat.businesslogic.impl;

import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import org.fh.itsbankomat.businesslogic.api.BankomatSystemService;
import org.fh.itsbankomat.businesslogic.api.KreditInstitutService;
import org.fh.itsbankomat.businesslogic.model.Bankomatkarte;
import org.fh.itsbankomat.businesslogic.model.Transaktionen;

/**
 *
 * @author MeinLaptop
 */
@Stateless
@LocalBean
public class BankomatServiceImpl  implements BankomatSystemService{
    @PersistenceContext
    private EntityManager em;
    
    private KreditInstitutService m_KreditInstitutService = null;

    @Override
    public Transaktionen pruefenBankomatKarte(Transaktionen v_Transaktion) {
         try{
             Bankomatkarte karte = em.createNamedQuery("Bankomatkarte.findByIban", Bankomatkarte.class)
                .setParameter(" ", v_Transaktion.getIban()).getSingleResult();
             // gesperrt ?
             if(karte.getGesperrt() == 'y'){
                 v_Transaktion.setMessageid("CardLocked");
                 v_Transaktion.setMessage("Bankomatkarte für IBAN " + v_Transaktion.getIban() + " gesperrt!");
                 return v_Transaktion;
             }
             // Konto prüfen über den KreditInstitutService
             //v_Transaktion = m_KreditInstitutService.pruefenKonto(v_Transaktion);
        } catch(NoResultException  nREX){
            // Bankomatkarte nicht vorhanden
            v_Transaktion.setMessageid("NoCardFound");
            v_Transaktion.setMessage("Es ist keine Bankomatkarte für IBAN " + v_Transaktion.getIban() + " registriert");
        }
         return v_Transaktion;
    }

    @Override
    public Transaktionen freigebenAuszahlung(Transaktionen v_Transaktion) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Transaktionen abbrechen(Transaktionen v_Transaction) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
}
